﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XinYi.CrookedShow.Core
{
    public class ConfigurationHelper
    {
        #region 获取AppSetting下指定key的Value值
        /// <summary>
        /// 获取AppSetting下指定key的Value值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetAppSettingValue(string key)
        {
            var result = ConfigurationManager.AppSettings[key];
            if (result == null) return "";
            return result;
        }
        #endregion

        #region 获取指定Section下指定key的Value值
        /// <summary> 
        /// 获取Section下指定key的Value值
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetSectionValue(string sectionName, string key)
        {
            //定义一个字典  这个字典是一个对象 不是键值对的集合 将其强转得到具体的一个节点
            IDictionary section = (IDictionary)ConfigurationManager.GetSection(sectionName);
            //通过节点section[key]获取指定key的值
            var result = section[key];
            if (result == null) return "";
            //将object类型转换为string null不能转换为string
            return result.ToString();
        }
        #endregion

        #region 获取Section下key的集合
        /// <summary>
        /// 获取Section下key的集合
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static List<string> GetSectionList(string sectionName)
        {
            //定义存储key的集合
            List<string> keylist = new List<string>();
            //定义一个字典  这个字典是一个对象 不是键值对的集合 将其强转得到具体的一个节点
            IDictionary section = (IDictionary)ConfigurationManager.GetSection(sectionName);
            //循环section节点下的”键 keys“得到key集合
            foreach (var item in section.Keys)
            {
                //向集合中添加数据 键是object类型将其转换
                keylist.Add(item.ToString());
            }
            //返回集合
            return keylist;
        }
        #endregion
    }
}
